package lanqiao;
/**
 * 包子凑数【第八届】【省赛】【A组】
 *    每当有顾客想买X个包子，卖包子的大叔就会迅速选出若干笼包子来，使得这若干笼中恰好一共有X个包子。
 * 比如一共有3种蒸笼，分别能放3、4和5个包子。当顾客想买11个包子时，大叔就会选2笼3个的再加1笼5个的（也可能选出1笼3个的再加2笼4个的）。
 * 当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼，分别能放4、5和6个包子。而顾客想买7个包子时，大叔就凑不出来了。
 * 小明想知道一共有多少种数目是包子大叔凑不出来的。如果凑不出的数目有无限多个，输出INF。
 *    第一行包含一个整数N。(1 <= N <= 100)
 * 　　以下N行每行包含一个整数Ai。(1 <= Ai <= 100)
 * 输入
 *    2
 *    4
 *    5
 * 输出
 *    6
 *    对于样例1，凑不出的数目包括：1, 2, 3, 6, 7, 11。
 * 输入
 *    2
 *    4
 *    6
 * 输出
 *    INF
 *    对于样例2，所有奇数都凑不出来，所以有无限多个。
 */
import java.util.*;
public class Prev_199 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] s = new int[n];
        for(int i = 0; i < s.length; i++){
            s[i] = input.nextInt();
        }
        if(isINF(s)){
            System.out.println("INF");
        }else{
            System.out.println(countNums(s));
        }
    }
    //统计凑不出来的数目
    private static int countNums(int[] s) {
        //设定一个临界值10000，以这个临界值以内的数来判定结果
        int l = 10000;
        //dp[i][j]表示前i个元素能否凑出j
        boolean[][] dp = new boolean[s.length + 1][l];
        //初始化
        for(int j = 1; j < l; j++){
            dp[0][j] = false;
        }
        //先遍历元素
        for(int i = 1; i <= s.length; i++){
            //只靠自己就能凑的数
            int g = s[i-1];
            while(g < l){
                dp[i][g] = true;
                g += s[i-1];
            }
            //再遍历容量
            for(int j = 1; j < l; j++){
                if(dp[i-1][j]){
                    dp[i][j] = true;
                    //还可以衍生
                    int k = j + s[i-1];
                    while(k < l){
                        dp[i][k] = true;
                        k += s[i-1];
                    }
                }
            }
        }
        //统计最终凑不出的数量
        int count = 0;
        for(int j = 1; j < l; j++){
            if(! dp[s.length][j]){
                count ++;
            }
        }
        return count;
    }
    //判断是否数组凑不出的数目有无限多个
    private static boolean isINF(int[] s) {
        //当这些数有一个公共的因子时（除1外），就有无限个凑不出的数
        Arrays.sort(s);
        if(s[0] == 1){
            return false;
        }
        for(int i = 2; i <= s[0]; i++){
            boolean publicI = true;
            for(int j = 0; j < s.length; j++){
                if(s[j] % i != 0){
                    publicI = false;
                }
            }
            if(publicI){
                return true;
            }
        }
        return false;
    }
}